<script>
    layui.config({
        base: '/static/layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index' //主入口模块
    }).use(['index','table'], function() {
        var $ = layui.$
            , form = layui.form
            , table = layui.table
            , admin = layui.admin;

        //监听搜索
        form.on('submit(LAY-user-back-search)', function (data) {
            var field = data.field;

            //执行重载
            table.reload('LAY-pop', {
                where: field
                ,page: {
                    curr: 1  // 将页码重置为第一页
                }
            });
        });

        table.render({
            elem: '#LAY-pop'
            , url: '/popup/popList' //模拟接口
            , response: {
                statusCode: 1
            }
            , toolbar: '#toolbarDemo'
            , defaultToolbar: false
            , page: true //开启分页
            , cols: [[
                {field: 'id', width: 80, title: '弹窗ID'}
                , {field: 'name', title: '名称'}
                , {
                    field: 'type', title: '类型', templet: function (d) {
                        if (d.type == 1) {
                            return '推书';
                        } else if (d.type == 2) {
                            return '充值活动';
                        }else if (d.type == 3) {
                            return '外部链接';
                        } else {
                            return '';
                        }
                    }
                }
                , {field: 'quick_apps', title: 'App'}
                , {field: 'status', title: '开关', width: 85, templet: '#switchTpl', unresize: true, align: 'center'}
                , {field: 'wgt', title: '权重', align: 'center', width: 150,edit: 'text', sort: true}
                , {field: 'topped', title: '<span lay-tips="置顶只有管理员能操作，为了覆盖下属角色设置的弹窗，如多弹窗同时置顶，使用权重最高那个">置顶</span>', width: 85, templet: '#toppedTpl', unresize: true, align: 'center'}
                , {field: 'create_time', title: '创建时间'}
                , {title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'}
            ]]
        });


                //监听单元格编辑
                table.on('edit(LAY-pop)', function (obj) { //注：edit是固定事件名，test是table原始容器的属性 lay-filter="对应的值"
                    admin.req({
                        url: '/popup/setPopWgt'
                        , type: "POST"
                        , data: {'id':  obj.data.id, 'wgt': obj.value}
                        , done: function (res) {
                            layer.msg('设置成功', {icon: 1, time: 1000}, function () {
                            });
                        }, not_finish: function (res) {
                            layer.msg(res.msg);
                        }
                    });
                });



                form.on('switch(statusSwitch)', function (data) {
                    var status = 1;
                    if (data.elem.checked === false) {
                        status = 0;
                    }
                    admin.req({
                        url: '/popup/setPopStatus'
                        , type: "POST"
                        , data: {'id': data.value, 'status': status}
                        , done: function (res) {
                            layer.msg('设置成功', {icon: 1, time: 1000}, function () {
                            });
                        }, not_finish: function (res) {
                            layer.msg(res.msg);
                        }
                    });
                });


                form.on('switch(toppedSwitch)', function (data) {
                    var topped = 1;
                    if (data.elem.checked === false) {
                        topped = 0;
                    }
                    admin.req({
                        url: '/popup/setPopTopped'
                        , type: "POST"
                        , data: {'id': data.value, 'topped': topped}
                        , done: function (res) {
                            layer.msg('设置成功', {icon: 1, time: 1000}, function () {
                            });
                        }, not_finish: function (res) {
                            layer.msg(res.msg);
                        }
                    });
                });


                //触发排序事件
                table.on('sort(LAY-pop)', function(obj){ //注：sort 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
                    console.log(obj.field); //当前排序的字段名
                    console.log(obj.type); //当前排序类型：desc（降序）、asc（升序）、null（空对象，默认排序）
                    console.log(this); //当前排序的 th 对象

                    //尽管我们的 table 自带排序功能，但并没有请求服务端。
                    //有些时候，你可能需要根据当前排序的字段，重新向服务端发送请求，从而实现服务端排序，如：
                    table.reload('LAY-pop', {
                        initSort: obj //记录初始排序，如果不设的话，将无法标记表头的排序状态。
                        ,where: { //请求参数（注意：这里面的参数可任意定义，并非下面固定的格式）
                            order: 'wgt ' + obj.type //排序方式
                        }
                        ,page: {
                            curr: 1  // 将页码重置为第一页
                        }
                    });
                    //layer.msg('服务端排序。order by '+ obj.field + ' ' + obj.type);
                });



                //监听行工具事件
                table.on('tool(LAY-pop)', function (obj) {
                    var data = obj.data;
                    if (obj.event === 'del') {
                        layer.confirm('【'+obj.data.name+'】确认删除此弹窗吗？',{icon: 3, title:false}, function(index){
                            admin.req({
                                url: '/popup/delPop'
                                , type: "POST"
                                , data: {'id': data.id}
                                , done: function (res) {
                                    layer.msg('删除成功', {icon: 1, time: 1000}, function () {
                                        obj.del();
                                        layer.close(index);
                                    });
                                }, not_finish: function (res) {
                                    layer.msg(res.msg);
                                }
                            });
                        });
                    } else if (obj.event === 'edit') {
                        layer.open({
                            type: 2
                            , maxmin: true//开启最大化最小化按钮
                            , title: '编辑弹窗'
                            , content: '/popup/editPop.html?id=' + obj.data.id
                            , offset: '5px'
                            , area: ['840px', '750px']
                            , btn: ['保存', '取消']
                            , yes: function (index, layero) {
                                var iframeWindow = window['layui-layer-iframe' + index]
                                    , submit = layero.find('iframe').contents().find("#LAY-user-role-submit");
                                //监听提交
                                iframeWindow.layui.form.on('submit(LAY-user-role-submit)', function (data) {
                                    var field = data.field; //获取提交的字段
                                    //提交 Ajax 成功后，静态更新表格中的数据
                                    //$.ajax({});
                                    admin.req({
                                        url: '/popup/editPop?id=' + obj.data.id
                                        , type: "POST"
                                        , data: field
                                        , done: function (res) {
                                            layer.msg('保存成功', {icon: 1, time: 2000}, function () {
                                                table.reload('LAY-pop');
                                                layer.close(index); //关闭弹层
                                            });
                                        }, not_finish: function (res) {
                                            layer.msg(res.msg);
                                        }
                                    });
                                });

                                submit.trigger('click');
                            }
                        });


                    }
                });




                //头工具栏事件
                table.on('toolbar(LAY-pop)', function (obj) {
                    switch (obj.event) {
                        case 'add':
                            layer.open({
                                type: 2
                                ,maxmin: true//开启最大化最小化按钮
                                ,title: '添加弹窗'
                                ,content: '/popup/addPop.html'
                                ,offset: '5px'
                                ,area: ['840px', '750px']
                                ,btn: ['保存', '取消']
                                ,yes: function(index, layero){
                                    var iframeWindow = window['layui-layer-iframe'+ index]
                                        ,submit = layero.find('iframe').contents().find("#LAY-user-role-submit");

                                    //监听提交
                                    iframeWindow.layui.form.on('submit(LAY-user-role-submit)', function(data){
                                        var field = data.field; //获取提交的字段
                                        //提交 Ajax 成功后，静态更新表格中的数据
                                        //$.ajax({});
                                        admin.req({
                                            url: '/popup/addPop'
                                            , type: "POST"
                                            , data: field
                                            , done: function (res) {
                                                layer.msg('添加成功', {icon: 1, time: 2000}, function () {
                                                    table.reload('LAY-pop');
                                                    layer.close(index); //关闭弹层
                                                });
                                            },not_finish:function (res) {
                                                layer.msg(res.msg);
                                            }
                                        });
                                    });

                                    submit.trigger('click');
                                }
                            });
                            break;
                    }
                });
            });
</script>